package cn.cdeden.knowledge.domain;

import cn.cdeden.knowledge.domain.dto.FileTemplateTreeDto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.*;
import lombok.experimental.Accessors;

/**
 * 文件模板库

 */
@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName(value = "file_template_tree")
@AutoMappers({@AutoMapper(target = FileTemplateTreeDto.class)})
public class FileTemplateTree {
    /**
     * 编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 父亲编号第一级
     */
    @TableField(value = "parent_id")
    private Long parentId;

    /**
     * 第二级
     */
    @TableField(value = "parent_id2")
    private Long parentId2;

    /**
     * 第三级
     */
    @TableField(value = "parent_id3")
    private Long parentId3;

    /**
     * icon值
     */
    @TableField(value = "icon")
    private String icon;

    /**
     * 后缀名
     */
    @TableField(value = "suffix")
    private String suffix;

    /**
     * 名称
     */
    @TableField(value = "real_name")
    private String realName;

    /**
     * 上级路径
     */
    @TableField(value = "superiors_path")
    private String superiorsPath;

    /**
     * 路径
     */
    @TableField(value = "`path`")
    private String path;

    /**
     * 下一级类型
     */
    @TableField(value = "`type`")
    private String type;

    /**
     * 储存表id
     */
    @TableField(value = "storage_id")
    private String storageId;

    /**
     * 储存服务器类型
     */
    @TableField(value = "storage_type")
    private String storageType;

    /**
     * 文件大小
     */
    @TableField(value = "`size`")
    private Long size;

    /**
     * 状态（0：未审批 1：已审批）
     */
    @TableField(value = "`state`")
    private String state;

    /**
     * 预览
     */
    @TableField(value = "preview")
    private Integer preview;

    @TableField(value = "attention")
    private String attention;

    /**
     * 收藏数
     */
    @TableField(value = "`collection`")
    private Integer collection;

    /**
     * 下载次数
     */
    @TableField(value = "download")
    private Integer download;

    @TableField(value = "column_type")
    private String columnType;

    /**
     * 创建编号
     */
    @TableField(value = "create_id")
    private String createId;

    /**
     * 创建者
     */
    @TableField(value = "create_by")
    private String createBy;

    /**
     * 创建日期
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新编号
     */
    @TableField(value = "update_id")
    private String updateId;

    /**
     * 更新者
     */
    @TableField(value = "update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 删除编号
     */
    @TableField(value = "delete_id")
    private String deleteId;

    /**
     * 删除者
     */
    @TableField(value = "delete_by")
    private String deleteBy;

    /**
     * 删除时间
     */
    @TableField(value = "delete_time")
    private Date deleteTime;

    @TableField(value = "delete_type")
    private String deleteType;

    /**
     * 版本
     */
    @TableField(value = "edition_name")
    private String editionName;

    /**
     * 可预览图片存储ID集
     */
    @TableField(value = "pre_image")
    private String preImage;

    /**
     * 模板图片存储ID
     */
    @TableField(value = "image_storage")
    private String imageStorage;

    /**
     * 模板文件存储ID
     */
    @TableField(value = "file_storage")
    private String fileStorage;

    /**
     * 模板名称
     */
    @TableField(value = "template_name")
    private String templateName;

    /**
     * 模块名称
     */
    @TableField(value = "library_type")
    private String libraryType;

    /**
     * 喜欢数
     */
    @TableField(value = "likes")
    private Integer likes;

    /**
     * 描述
     */
    @TableField(value = "description")
    private String description;

    /**
     * 所需积分
     */
    @TableField(value = "point")
    private Integer point;

    /**
     * 部门id
     */
    @TableField(value = "dept_id")
    private Long deptId;
}
